package web.appeloffre;

import java.util.List;

import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import persistence.appeloffre.AppelOffre;
import persistence.util.HibernateUtil;
import web.Template;
import persistence.utilisateur.*;

public class ConsulterAppelOffre extends Template {

	private Query query; 
	private List<AppelOffre> listAo;
	private ListView<AppelOffre> listView;
	private final String VALEUR_TITRE = "FONCTIONNALITE DE REPONSE A APPEL D'OFFRE NON IMPLEMENTE PAR MANQUE DE TEMPS";
	private Form<?> formReponse;
	private Form<?> formConsul;
	

	public ConsulterAppelOffre()
	{
		super();
		SessionFactory sf = HibernateUtil.getSessionFactory();
		Session session = sf.openSession();
		query = session.createQuery("Select ao from AppelOffre ao where validation=:code");
		query.setParameter("code", 0);
		listAo = query.list();
		session.close();

		listView = new ListView<AppelOffre>("listview", listAo)
		{
			public void populateItem(ListItem item)
			{
				final AppelOffre ao = (AppelOffre) item.getModelObject();
				item.add(new Label("libelleprod", ao.getProduit().getLibelle()));
				item.add(new Label("marque", ao.getProduit().getMarque().getLibelle()));
				item.add(new Label("accessoire", ao.getProduit().getAccessoire().getLibelle()));
				item.add(new Label("couleur", ao.getProduit().getCouleur().getLibelle()));
				item.add(new Label("qte", ao.getQte()));
				formReponse = new Form<Object>("formreponse")
						{
					public void onSubmit()
					{
						setResponsePage(new FaireReponseAppelOffre(ao));
					}
						};
				item.add(formReponse);
				formConsul = new Form<Object>("formconsul")
						{
					public void onSubmit()
					{
						setResponsePage(new ConsultationReponse(ao));
					}
						};
				item.add(formConsul);
				formConsul.setVisible(getMySession().getUtilisateur() instanceof Gestionnaire);
				formReponse.setVisible(getMySession().getUtilisateur() instanceof Fournisseur);
			}
		};
		add(new Label("titre", VALEUR_TITRE));
		add(listView);
	}

}
